A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by any one of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
The invention is related to network data communications, and in particular to a middleware approach to implementation of real-time Ethernet.
Computer networks have become widely popular throughout business and industry. They may be used to link multiple computers within one location or across multiple sites.
The network provides a communication channel for the transmission of data, or traffic, from one computer to another. Network uses are boundless and may include simple data or file transfers, remote audio or video, multimedia conferencing, industrial control and more.
Perhaps the most popular network protocol is Ethernet, a local area network specification for high-speed terminal to computer communications or computer to computer file transfers. The Ethernet communication protocol permits and accommodates data transfers across a data communication channel or bus, typically a twisted pair or coaxial cable.
The Ethernet communication protocol was standardized as the IEEE 802.3 standard for communications over a local area network (LAN). This protocol incorporates a 1-persistent, Carrier Sense Multiple Access with Collision Detection (CSMA/CD) protocol meaning that one or more nodes of a shared network may monitor the channel if they have a data packet to transmit, and transmit that packet immediately upon detecting the channel to be idle.
A xe2x80x9ccollisionxe2x80x9d of data packets may occur if two or more nodes begin transmitting simultaneously on the network. Colliding nodes will detect such a collision of data and terminate their transmission, waiting a randomly-determined time period before attempting transmission again. Under current standards, a failure will be generated after a node makes sixteen unsuccessful attempts to transmit its data packet without collision.
Under lightly-loaded conditions, collisions are infrequent and resolution is rapid. However, heavy loading may lead to indeterminate access time. While some applications may be relatively insensitive to collisions and their resultant delays on data transfer, other applications may be time sensitive such that collisions of data packets are undesirable or even intolerable. Examples of such time-sensitive or real-time applications may include remote video or control of industrial process equipment. The requirement for some applications to circumvent collisions and guarantee successful transmission and reception has led to various improvements to Ethernet.
One Ethernet improvement is a token-based protocol standardized under IEEE 802.4 (Token bus) or 802.5 (Token ring). The primary difference between these two standards is in the network topology each is designed to address. Token bus addresses a network in which the nodes form a logical ring; Token ring addresses a network in which the nodes form a physical ring.
Token-based protocols generate a xe2x80x9ctokenxe2x80x9d which is passed to every node along the network. These protocols permit data transmission only when the node is in possession of the token, and each node is given a fixed amount of time to transmit data. This transmission time is further divided into multiple segments or timers relating to different priority levels. These priority levels may be assigned to different data streams depending upon their criticality and time sensitivity. Nodes may only transmit data of a given priority level during its respective timer. Under this approach, real-time data may be assured a fraction of the bandwidth free of collision. However, some of these token-based protocols may allow a given node only its fixed share of bandwidth regardless of whether other nodes make full or even any use of their bandwidth.
Improvements on these token-based protocols have also been proposed. As an example, an academic prototype has been proposed for a software-oriented real-time Ethernet implemented on a UNIX platform utilizing a token-based protocol. (see Chitra Venkatramani, xe2x80x9cThe Design, Implementation and Evaluation of RETHER: A Real-Time Ethernet Protocol,xe2x80x9d Ph.D. Dissertation, State University of New York, January 1997) RETHER, however, only provides for non-real time traffic when there is no more real time traffic to be sent by any node. Depending on the type of traffic on the network, this led to low network throughput and utilization due to token passing overhead for non-real time traffic, and did not support hard real time traffic.
Another prior solution is hardware based. Under this approach, data packet collisions are avoided through hardware. These hardware-based solutions may be necessary for certain critical real-time applications such as aviation, to meet stringent performance and reliability requirements. However, such solutions are proprietary and vendor-dependent, making them difficult and expensive to implement. Hardware-based solutions may be incompatible with many existing Ethernet networks, requiring costly and complicated modifications. In addition, although these hardware solutions prevent collisions, they do not offer scheduling of real-time traffic in an entire system. Both solutions also require modification of existing hardware or software.
Accordingly, there exists a need for an efficient deterministic service to prevent collisions of and guarantee real-time traffic over Ethernet that can be implemented on existing Ethernet networks and is compatible with a wide variety of commercial-off-the-shelf (COTS) hardware and applications. Such a solution is needed for process control networks, time sensitive multimedia and Internet applications.
A middleware approach to implementation of real-time Ethernet provides deterministic, i.e. predictable, communication services for both real time and non-real time traffic over a conventional Ethernet network having a plurality of nodes desiring to transmit packets of data. The middleware comprises computer software residing above a network interface device and the device driver, yet below the system transport services and/or user applications. The invention provides a Middleware Real-Time Ethernet or MRTE which does not require modification to existing hardware that implements Ethernet.
In one embodiment, Ethernet bandwidth is divided into cycles. During each cycle, a first time interval is provided for real time data packet traffic using a deterministic scheduling protocol such as by passing a token, such that no collisions can occur. During a second time interval, the standard carrier sense, multiple access, collision detect Ethernet protocol is used for non-real time traffic. By using these two time intervals, bandwidth is shared between real time and non-real time traffic, ensuring that both will receive desired bandwidth.
In one embodiment, separate queues are used for deterministic scheduling to determine the order of packet queuing and transmission on each node such that (1) real-time traffic can be guaranteed once admitted for transmission service, (2) non-real-time traffic can be served, and (3) the Ethernet bandwidth utilization can be optimized.
Quality of Service, QoS, enables making on-line tradeoffs between network bandwidth availability and network transmission quality. Examples of QoS include (1) degree of packet collisions when Ethernet is shared by soft- or non-real-time traffics during certain time slots and (2) amount of end-to-end packet transmission latency.
When QoS is used, periodic data, such as video at 30 frames per second may be given a priority or criticality, and a cumulative loss factor, e.g. up to four frames in a row may be discarded. If there is sufficient bandwidth remaining after higher priority tasks or data streams are handled, the video will be accepted to the real time queue with at least five frames per second being sent. If other tasks are deleted or reduced, this frame rate will increase.
Software structuring enables hosting of the real-time Ethernet middleware above the Ethernet network device and the device driver, and below system transport software and/or user applications. A specific example of such a software host is the Microsoft(copyright) Network Device Interface Specification (NDIS) with Device Driver Kit (DDK) on Microsoft(copyright) NT(copyright)-based personal computer platforms. Many other software hosts are available depending upon specific hardware chosen.
A collision avoidance module guarantees that a transmission will not result in traffic collision. The collision avoidance module implements a collision-avoidance protocol that provides the capability for preventing Ethernet traffic from colliding, which is one source of the problem of non-deterministic Ethernet behavior. A specific example of such a protocol is a token-based protocol by which a token circulating among the Ethernet nodes determines which node should transmit packets at any point in time. Other collision-avoidance protocols may be used with the invention such as various implementations of Time-Division Multiple Access (TDMA), a technology using Time-Division Multiplexing (TDM). The protocol or standard provides a mechanism to avoid conflict among data transmission by more than one node at any given time.
In one embodiment, the collision-avoidance protocol is switchable to be enabled or disabled as desired by the deterministic scheduling module. This allows the invention to guarantee no collisions of real-time traffic, yet permit collisions of soft- and non-real-time traffic. Such mixed-mode operation could lead to increased bandwidth utilization depending upon the loading during time periods allocated to soft- and non-real-time traffic. Lightly loaded CSMA/CD systems can be more efficient than systems operating on a collision avoidance protocol.
While the collision-avoidance protocol is active, the time set for a complete rotation of transmitting nodes is bounded. In the case of a token-based protocol, the token must return within this bounded time, or token rotation time.
For each collision avoidance protocol (token based or TDMA), a deterministic scheduling module uses an algorithm to schedule traffic and guarantee that transmission will be done before a deadline expires.
In a further embodiment of the invention, allocation of bandwidth to an individual bridge or node is increased based on underutilization of bandwidth by other bridges or nodes in the network.
One advantage of the invention is that it remains compliant with the IEEE 802.3 standard. Such compliance allows the invention to be practiced on a multitude of standard Ethernet networks without requiring modification of hardware, thus remaining an open system.
A further advantage of the invention is that it is modular in nature. As such, the invention may be practiced using a variety of collision-avoidance protocols, deterministic scheduling algorithms, and QoS negotiation and adaptation policies and algorithms.
As a software approach, the invention also enables use of any COTS Ethernet cards and drivers for real-time Ethernet. Use of specific vendor Ethernet cards and drivers is transparent to applications, thus making the invention capable of vendor interoperability, system configuration flexibility and low cost to network users.